package config

import (
	"fmt"
	"github.com/mattermost/viper"
)

type Server struct {
	Host string `mapstructtrue:"host" json:"host"`
	Port string `mapstructtrue:"port" json:"port"`
}

type Mysql struct {
	User     string `mapstructtrue:"user" json:"user"`
	Password string `mapstructtrue:"password" json:"password"`
	Host     string `mapstructtrue:"host" json:"host"`
	Port     int    `mapstructtrue:"port" json:"port"`
	Database string `mapstructtrue:"database" json:"database"`
}

type Redis struct {
	Addr     string `mapstructtrue:"addr" json:"addr"`
	Password string `mapstructtrue:"password" json:"password"`
	Db       int    `mapstructtrue:"db" json:"db"`
}

type AppConfig struct {
	Server
	Mysql
	Redis
}

var AppConf AppConfig

func InitConfig() {
	viper.SetConfigFile("./config/dev.yaml")
	err := viper.ReadInConfig()
	if err != nil {
		fmt.Println("viper读取失败")
		return
	}
	viper.Unmarshal(&AppConf)
	fmt.Println("viper读取成功")
}
